package com.gooluke.shorten.strategy;

import com.gooluke.shorten.context.GenerateContext;

/**
 * @author gooluke
 * description 短码生成策略
 * datetime 2025-03-30 0:49
 */
public interface ShortCodeStrategy {

    /**
     * 生成短码
     * @param originalUrl 原始URL（用于哈希类策略）
     * @param context     生成上下文（包含用户ID等信息）
     * @return 短码（6-8位字符）
     */
    String generate(String originalUrl, GenerateContext context);

    /**
     * 是否为自定义短码
     */
    default boolean isCustom() {
        return false;
    }

}
